#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <strings.h>
#include <readline/readline.h>
#include <readline/history.h>
#include <signal.h>
#include <setjmp.h>
#include <sys/wait.h>

#define STDMODE 0600
#define BLANK_STRING " "
#define REDIRECT_IN '<'
#define REDIRECT_OUT '>'
#define TRUE 1
#define FALSE 0
#define MAX_HISTORY_NUM 50
#define BACKGROUND_SYMBOL '&'
#define NULL_SYMBOL '\0'

enum BUILTIN_COMMANDS { NO_SUCH_BUILTIN=0, EXIT, JOBS, HISTORY, CD, KILL, HELP };
static sigjmp_buf jump_to_prompt;
static volatile sig_atomic_t okaytojump = 0;

/* Method/Function Declarations */
void executeCommand(parseInfo *);
int redirect(char *, char *);
static void jumphand(int);
void handle_history(struct commandType *);
void changeDirectory(struct commandType *);
void killJob(pid_t);
